package day230321;

import java.util.Arrays;

/**
 * @author 兴趣使然黄小黄
 * @version 1.0
 * @date 2023/3/22 21:07
 * 排序思路
 */
public class Main2 {

    public static void main(String[] args) {
        int[] array = {1,2,3,2,2,2,5,4,2};
        int ret = new Solution().MoreThanHalfNum_Solution(array);
        System.out.println(ret);
    }
}

class Solution {
    /**
     * @param numbers int整型一维数组
     * @return int整型
     */
    public int MoreThanHalfNum_Solution (int[] numbers) {
        // 边界判断
        if (numbers == null || numbers.length == 0) {
            return 0;
        }
        Arrays.sort(numbers); // 进行排序
        // 中间的数可能是超过数组一半的数
        int midNum = numbers[numbers.length/2]; // 排序后数组中间的数字
        // 验证一下是否出现次数大于数组一半
        int count = 0; // 记录次数
        for (int item : numbers) {
            if (item == midNum) {
                count++;
            }
        }
        return count > numbers.length / 2 ? midNum : 0;
    }
}
